package com.smart.community.commons.constant;

/**
 * 消息常量
 * 统一管理系统中常用的消息字符串，避免硬编码
 * 根据20250703系统设计调整方案合并重复的消息常量定义
 * 
 * @author Wu.Liang
 * @since 2025-07-06
 * @version 2.0.0
 */
public class MessageConstants {
    
    // ==================== 操作结果消息 ====================
    /** 操作成功 */
    public static final String SUCCESS = "操作成功";
    /** 操作失败 */
    public static final String FAILED = "操作失败";
    /** 查询成功 */
    public static final String QUERY_SUCCESS = "查询成功";
    /** 查询失败 */
    public static final String QUERY_FAILED = "查询失败";
    /** 创建成功 */
    public static final String CREATE_SUCCESS = "创建成功";
    /** 更新成功 */
    public static final String UPDATE_SUCCESS = "更新成功";
    /** 删除成功 */
    public static final String DELETE_SUCCESS = "删除成功";
    /** 保存成功 */
    public static final String SAVE_SUCCESS = "保存成功";
    /** 导入成功 */
    public static final String IMPORT_SUCCESS = "导入成功";
    /** 导出成功 */
    public static final String EXPORT_SUCCESS = "导出成功";
    
    // ==================== 认证相关消息 ====================
    /** 登录成功 */
    public static final String LOGIN_SUCCESS = "登录成功";
    /** 登录失败 */
    public static final String LOGIN_FAILED = "登录失败";
    /** 登出成功 */
    public static final String LOGOUT_SUCCESS = "登出成功";
    /** 注册成功 */
    public static final String REGISTER_SUCCESS = "注册成功";
    /** 注册失败 */
    public static final String REGISTER_FAILED = "注册失败";
    /** Token刷新成功 */
    public static final String TOKEN_REFRESH_SUCCESS = "Token刷新成功";
    /** Token刷新失败 */
    public static final String TOKEN_REFRESH_FAILED = "Token刷新失败";
    /** 验证码错误 */
    public static final String CAPTCHA_ERROR = "验证码错误";
    /** 密码重置成功 */
    public static final String PASSWORD_RESET_SUCCESS = "密码重置成功";
    /** 修改密码成功 */
    public static final String CHANGE_PASSWORD_SUCCESS = "修改密码成功";
    /** 修改密码失败 */
    public static final String CHANGE_PASSWORD_FAILED = "修改密码失败";
    /** 账号已被锁定 */
    public static final String ACCOUNT_LOCKED = "账号已被锁定";
    /** 用户名或密码错误 */
    public static final String INVALID_CREDENTIALS = "用户名或密码错误";
    /** 会话已过期 */
    public static final String SESSION_EXPIRED = "会话已过期";
    /** 未授权访问 */
    public static final String UNAUTHORIZED = "未授权访问";
    
    // ==================== 用户管理消息 ====================
    /** 用户不存在 */
    public static final String USER_NOT_FOUND = "用户不存在";
    /** 用户已存在 */
    public static final String USER_ALREADY_EXISTS = "用户已存在";
    /** 用户名已存在 */
    public static final String USERNAME_ALREADY_EXISTS = "用户名已存在";
    /** 手机号已存在 */
    public static final String PHONE_ALREADY_EXISTS = "手机号已存在";
    /** 邮箱已存在 */
    public static final String EMAIL_ALREADY_EXISTS = "邮箱已存在";
    /** 用户创建成功 */
    public static final String USER_CREATE_SUCCESS = "用户创建成功";
    /** 用户更新成功 */
    public static final String USER_UPDATE_SUCCESS = "用户更新成功";
    /** 用户删除成功 */
    public static final String USER_DELETE_SUCCESS = "用户删除成功";
    /** 用户状态已更改 */
    public static final String USER_STATUS_CHANGED = "用户状态已更改";
    /** 获取用户信息失败 */
    public static final String GET_USER_INFO_FAILED = "获取用户信息失败";
    /** 更新用户信息失败 */
    public static final String UPDATE_USER_INFO_FAILED = "更新用户信息失败";
    /** 上传头像失败 */
    public static final String UPLOAD_AVATAR_FAILED = "上传头像失败";
    
    // ==================== 权限相关消息 ====================
    /** 权限不足 */
    public static final String PERMISSION_DENIED = "权限不足";
    /** 无权限访问 */
    public static final String NO_PERMISSION = "无权限访问";
    /** 角色分配成功 */
    public static final String ROLE_ASSIGN_SUCCESS = "角色分配成功";
    /** 权限分配成功 */
    public static final String PERMISSION_ASSIGN_SUCCESS = "权限分配成功";
    /** 角色不存在 */
    public static final String ROLE_NOT_FOUND = "角色不存在";
    /** 权限不存在 */
    public static final String PERMISSION_NOT_FOUND = "权限不存在";
    /** 角色创建成功 */
    public static final String ROLE_CREATE_SUCCESS = "角色创建成功";
    /** 角色更新成功 */
    public static final String ROLE_UPDATE_SUCCESS = "角色更新成功";
    /** 角色删除成功 */
    public static final String ROLE_DELETE_SUCCESS = "角色删除成功";
    
    // ==================== 关联操作消息 ====================
    /** 关联成功 */
    public static final String ASSOCIATE_SUCCESS = "关联成功";
    /** 取消关联成功 */
    public static final String DISASSOCIATE_SUCCESS = "取消关联成功";
    /** 关联失败 */
    public static final String ASSOCIATE_FAILED = "关联失败";
    /** 取消关联失败 */
    public static final String DISASSOCIATE_FAILED = "取消关联失败";
    
    // ==================== 文件操作消息 ====================
    /** 文件上传成功 */
    public static final String FILE_UPLOAD_SUCCESS = "文件上传成功";
    /** 文件上传失败 */
    public static final String FILE_UPLOAD_FAILED = "文件上传失败";
    /** 文件下载成功 */
    public static final String FILE_DOWNLOAD_SUCCESS = "文件下载成功";
    /** 文件下载失败 */
    public static final String FILE_DOWNLOAD_FAILED = "文件下载失败";
    /** 文件不存在 */
    public static final String FILE_NOT_FOUND = "文件不存在";
    /** 文件大小超出限制 */
    public static final String FILE_SIZE_EXCEEDED = "文件大小超出限制";
    /** 文件类型不支持 */
    public static final String FILE_TYPE_NOT_SUPPORTED = "文件类型不支持";
    
    // ==================== 业务相关消息 ====================
    /** 社区不存在 */
    public static final String COMMUNITY_NOT_FOUND = "社区不存在";
    /** 楼栋不存在 */
    public static final String BUILDING_NOT_FOUND = "楼栋不存在";
    /** 单元不存在 */
    public static final String UNIT_NOT_FOUND = "单元不存在";
    /** 房户不存在 */
    public static final String HOUSEHOLD_NOT_FOUND = "房户不存在";
    /** 物业公司不存在 */
    public static final String PROPERTY_COMPANY_NOT_FOUND = "物业公司不存在";
    /** 获取物业信息成功 */
    public static final String GET_PROPERTY_INFO_SUCCESS = "获取物业信息成功";
    /** 获取物业信息失败 */
    public static final String GET_PROPERTY_INFO_FAILED = "获取物业信息失败";
    /** 更新物业信息成功 */
    public static final String UPDATE_PROPERTY_INFO_SUCCESS = "更新物业信息成功";
    /** 更新物业信息失败 */
    public static final String UPDATE_PROPERTY_INFO_FAILED = "更新物业信息失败";
    
    // ==================== 验证相关消息 ====================
    /** 验证失败 */
    public static final String VALIDATION_FAILED = "验证失败";
    /** 手机号格式错误 */
    public static final String PHONE_FORMAT_ERROR = "手机号格式错误";
    /** 邮箱格式错误 */
    public static final String EMAIL_FORMAT_ERROR = "邮箱格式错误";
    /** 身份证号格式错误 */
    public static final String ID_CARD_FORMAT_ERROR = "身份证号格式错误";
    /** 密码强度不足 */
    public static final String PASSWORD_TOO_WEAK = "密码强度不足";
    /** 密码不匹配 */
    public static final String PASSWORD_MISMATCH = "密码不匹配";
    
    // ==================== 时间相关消息 ====================
    /** 日期格式错误 */
    public static final String DATE_FORMAT_ERROR = "日期格式错误";
    /** 日期范围错误 */
    public static final String DATE_RANGE_ERROR = "日期范围错误";
    
    // ==================== 缓存相关消息 ====================
    /** 设置本地缓存失败 */
    public static final String SET_LOCAL_CACHE_FAILED = "设置本地缓存失败";
    /** 获取本地缓存失败 */
    public static final String GET_LOCAL_CACHE_FAILED = "获取本地缓存失败";
    /** 设置会话缓存失败 */
    public static final String SET_SESSION_CACHE_FAILED = "设置会话缓存失败";
    /** 获取会话缓存失败 */
    public static final String GET_SESSION_CACHE_FAILED = "获取会话缓存失败";
    
    // ==================== 加密相关消息 ====================
    /** 密码哈希失败 */
    public static final String PASSWORD_HASH_FAILED = "密码哈希失败";
    /** 密码验证失败 */
    public static final String PASSWORD_VERIFY_FAILED = "密码验证失败";
    /** 生成Token失败 */
    public static final String GENERATE_TOKEN_FAILED = "生成Token失败";
    /** 验证Token失败 */
    public static final String VERIFY_TOKEN_FAILED = "验证Token失败";
    
    // ==================== 支付相关消息 ====================
    /** 支付成功 */
    public static final String PAYMENT_SUCCESS = "支付成功";
    /** 支付失败 */
    public static final String PAYMENT_FAILED = "支付失败";
    /** 获取支付信息成功 */
    public static final String GET_PAYMENT_INFO_SUCCESS = "获取支付信息成功";
    /** 检查支付状态成功 */
    public static final String CHECK_PAYMENT_STATUS_SUCCESS = "检查支付状态成功";
    
    // ==================== 通用错误消息 ====================
    /** 参数错误 */
    public static final String PARAM_ERROR = "参数错误";
    /** 系统错误 */
    public static final String SYSTEM_ERROR = "系统错误";
    /** 网络错误 */
    public static final String NETWORK_ERROR = "网络错误";
    /** 数据不存在 */
    public static final String DATA_NOT_FOUND = "数据不存在";
    /** 数据已存在 */
    public static final String DATA_ALREADY_EXISTS = "数据已存在";
    /** 无效参数 */
    public static final String INVALID_PARAMETER = "无效参数";
    /** 必填参数不能为空 */
    public static final String REQUIRED_PARAMETER = "必填参数不能为空";
    /** 数据格式错误 */
    public static final String DATA_FORMAT_ERROR = "数据格式错误";
    
    // ==================== 未知状态消息 ====================
    /** 未知状态 */
    public static final String UNKNOWN_STATUS = "未知状态";
    /** 未知类型 */
    public static final String UNKNOWN_TYPE = "未知类型";
    /** 未知角色 */
    public static final String UNKNOWN_ROLE = "未知角色";
    /** 未知模块 */
    public static final String UNKNOWN_MODULE = "未知模块";
    /** 未知操作 */
    public static final String UNKNOWN_ACTION = "未知操作";
    
    // ==================== 工具方法 ====================
    
    /**
     * 根据消息键获取消息内容
     * 
     * @param messageKey 消息键
     * @return 消息内容
     */
    public static String getMessage(String messageKey) {
        try {
            return (String) MessageConstants.class.getField(messageKey).get(null);
        } catch (Exception e) {
            return UNKNOWN_ACTION;
        }
    }
    
    /**
     * 私有构造函数，防止实例化
     */
    private MessageConstants() {
        throw new UnsupportedOperationException("工具类不能实例化");
    }
}
